package ui;

import java.util.Vector;

import javax.swing.table.AbstractTableModel;

import util.FuncionesUtiles;
import dominio.Objeto;

@SuppressWarnings("serial")
public class ObjetoModel extends AbstractTableModel {
  
	Vector<Objeto> filas;
    String columnas[] = {"Código", "Detalle", "Precio"};
    
    public ObjetoModel(Vector<Objeto> filas) {
    	this.filas = filas;
    }
    
    public int getRowCount() {
    	return filas.size();
    }

    public int getColumnCount() {
    	return columnas.length;
    }

    public String getColumnName(int columnIndex) {
    	return columnas[columnIndex];
    }

    public Class<?> getColumnClass(int columnIndex) {
    	return String.class;
    }

    public boolean isCellEditable(int rowIndex, int columnIndex) {
    	if(columnIndex == 2)
    		return true;
    	return false;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {

		switch (columnIndex) {
			case 0: return filas.elementAt(rowIndex).getCodigo().toString();
			case 1: return filas.elementAt(rowIndex).getDetalle();
			case 2: return filas.elementAt(rowIndex).getPrecioFormateado();
		}
		
		return "";
	}

    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    	
		if(columnIndex == 2 && !aValue.toString().isEmpty() && 
				FuncionesUtiles.StringIsDouble(aValue.toString())) {
			Objeto actual = filas.elementAt(rowIndex);
			Float precio = Float.parseFloat((String) aValue);
			actual.setPrecio(precio);
			
			fireTableCellUpdated(rowIndex, columnIndex);			
		}
    }
    
}
